package com.softer.wxzj.controller;

import com.github.pagehelper.PageInfo;
import com.softer.wxzj.common.entity.CommonResult;
import com.softer.wxzj.common.entity.Page;
import com.softer.wxzj.entity.ExpPayReq;
import com.softer.wxzj.entity.ExpRevocation;
import com.softer.wxzj.service.ExpRevocationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


/**
 * 资金使用撤销
 *
 * @author Gong Zhiyang
 * @date 2019/8/10
 */
@RestController
@RequestMapping("/expRevocation")
public class ExpRevocationController {
    @Autowired
    private ExpRevocationService expRevocationService;

    /**
     * 维修项目撤销列表
     *
     * @param page          分页实体
     * @param expRevocation 查询实体
     * @return 列表
     */
    @PostMapping("/getProjectList")
    public PageInfo<ExpRevocation> getProjectList(Page page, ExpRevocation expRevocation) {
        return expRevocationService.getProjectList(page, expRevocation);
    }

    /**
     * 项目撤销提交
     *
     * @param expRevocation 撤销实体
     *                      id 项目ID
     *                      revocatDate 撤销日期
     *                      revocatReason 撤销原因
     * @return 提交结果
     */
    @PostMapping("/projectRevocation")
    public CommonResult projectRevocation(ExpRevocation expRevocation) {
        return expRevocationService.projectRevocation(expRevocation);
    }

    /**
     * 拨款申请撤回列表
     *
     * @param page      分页实体
     * @param expPayReq 查询实体
     * @return 列表
     */
    @PostMapping("/getPayList")
    public PageInfo<ExpPayReq> getPayList(Page page, ExpPayReq expPayReq) {
        return expRevocationService.getPayList(page, expPayReq);
    }

    /**
     * 拨款申请撤销
     *
     * @param expRevocation 撤销实体
     *                      id 拨款申请ID
     *                      revocatDate 撤销日期
     *                      revocatReason 撤销原因
     * @return 提交结果
     */
    @PostMapping("/payRevocation")
    public CommonResult payRevocation(ExpRevocation expRevocation) {
        return expRevocationService.payRevocation(expRevocation);
    }

    /**
     * 撤销查询列表
     *
     * @param page          分页实体
     * @param expRevocation 查询实体
     * @return 撤销列表
     */
    @PostMapping("/revocationSearch")
    public PageInfo<ExpRevocation> revocationSearch(Page page, ExpRevocation expRevocation) {
        return expRevocationService.revocationSearch(page, expRevocation);
    }

    /**
     * 查询项目撤销审批列表
     *
     * @param page          分页实体
     * @param expRevocation 查询实体
     * @return 审批列表
     */
    @PostMapping("/getProjectAuditList")
    public PageInfo<ExpRevocation> getProjectAuditList(Page page, ExpRevocation expRevocation) {
        return expRevocationService.getProjectAuditList(page, expRevocation);
    }
    /**
     * 查询拨款申请撤销审批列表
     *
     * @param page          分页实体
     * @param expRevocation 查询实体
     * @return 审批列表
     */
    @PostMapping("/getPayAuditList")
    public PageInfo<ExpRevocation> getPayAuditList(Page page, ExpRevocation expRevocation) {
        return expRevocationService.getPayAuditList(page, expRevocation);
    }

    /**
     * 审核
     *
     * @param id      ID
     * @param opinion 审核意见
     * @param mark    审批通过 audit_pass
     *                审批否决 audit_veto
     *                审批退回 audit_back
     * @return 审核结果
     */
    @PostMapping("/audit")
    public CommonResult audit(String id, String opinion, String mark) {
        return expRevocationService.audit(id, opinion, mark);
    }
}
